package com.smedi.ismedi.progress.core.domain.service;

import com.smedi.ismedi.progress.api.dto.response.ProgressReportMonthDetailAllResponse;
import com.smedi.ismedi.progress.core.application.command.ConstructionLogDownloadQuery;
import com.smedi.ismedi.progress.core.domain.aggregatemodel.ConstructionLogDetail;
import com.smedi.ismedi.progress.core.domain.aggregatemodel.EngineeringReportDetail;
import com.smedi.ismedi.progress.core.domain.aggregatemodel.ProjectBriefReportDetail;
import com.smedi.ismedi.progress.core.domain.dto.ProjectBriefReportVo;
import org.springframework.http.ResponseEntity;

import java.io.IOException;
import java.util.List;

/**
 * 业务服务接口
 *
 * @author xienannan
 * @date 2021/08/28
 */
public interface ExportExcelDomainService {

    /**
    * 进度周月报导出
    * @param list
    * @param exportType
    * @return org.springframework.http.ResponseEntity<byte[]>
    * @date 2022/11/23 11:27
    */
    ResponseEntity<byte[]> exportProgressMonthReport(List<ProgressReportMonthDetailAllResponse> list, int exportType) throws IOException;
    /**
    * 项目简报导出
    * @param projectBriefReportVos
    * @return org.springframework.http.ResponseEntity<byte[]>
    * @date 2022/11/23 11:27
    */
    ResponseEntity<byte[]> projectBriefReportExport(List<ProjectBriefReportVo> projectBriefReportVos )throws IOException;

    /**
    * 施工日志导出
    * @param constructionLogDetail
    * @return org.springframework.http.ResponseEntity<byte[]>
    * @date 2022/11/23 11:27
    */
    ResponseEntity<byte[]> constructionLogExport(ConstructionLogDetail constructionLogDetail) throws IOException;

    /**
    * 下载附件
    * @param constructionLogDownloadQuery
    * @return org.springframework.http.ResponseEntity<byte[]>
    * @date 2022/11/24 17:48
    */
    ResponseEntity<byte[]> downloadBySignKeys(ConstructionLogDownloadQuery constructionLogDownloadQuery);

    /**
    * 工程周月报导出
    * @param engineeringReportDetail
    * @param mainCourtyard
    * @param type
    * @return org.springframework.http.ResponseEntity<byte[]>
    * @date 2022/11/28 11:28
    */
    ResponseEntity<byte[]> engineeringReportExport(EngineeringReportDetail engineeringReportDetail,String mainCourtyard,Long type,Long exportType) throws IOException;
}